package com.src.computec.vozcliente.base.constantes;

import com.src.computec.radar.base.source.CoreSource;
import com.src.computec.radar.base.util.RandomStringUtils;
import com.src.computec.vozcliente.source.VozClienteSource;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;

/**
 *
 * @author Jose Luis Perea
 */

public class ConstantesGenerales {
    
    protected static ConstantesGenerales instance;
    
    public static String FACTORYDAO_CLASSNAME;
    public static String SCHEMA;    
    
    public static String CODIGO_DANE_VACIO;
    public static DecimalFormat DECIMAL_FORMAT;   
    
    public static String CODIGO_DISTRIBUCION_EXTERNA;
    
    public static SimpleDateFormat DATE_FORMAT_STRING;
    public static SimpleDateFormat DATE_FORMAT_FILE;
    
    public static int WEEKS_BACK;
    
    public static String FOLDER_CARGUE_ARCHIVOS;
    public static String PATH_ARCHIVOS_ALERTAS;
    public static String FILE_SEPARATOR;
    
    public static String FILE_EXTENSION;
    public static String FILE_CODE;
    public static String FILE_ACTIVE;
    
    public static String FILE_ORIGEN;
    
    
    public static RandomStringUtils RANDOM_STRING_UTILS = new RandomStringUtils();
    
    protected ConstantesGenerales() {       
        VozClienteSource vozClienteSource = VozClienteSource.getInstance();
        
        this.FACTORYDAO_CLASSNAME       = vozClienteSource.getVozClienteSetupKey("DaoFactoryClassName");  
        this.SCHEMA                     = vozClienteSource.getVozClienteSetupKey("schema");  
        
        this.CODIGO_DANE_VACIO          = vozClienteSource.getVozClienteSetupKey("codigoVacioCodigoDane");   
        this.DECIMAL_FORMAT             = new DecimalFormat(vozClienteSource.getVozClienteSetupKey("decimalFormat"));   
        
        this.CODIGO_DISTRIBUCION_EXTERNA = vozClienteSource.getVozClienteSetupKey("codigoDistribucionExterna");   
        
        this.DATE_FORMAT_STRING         = new SimpleDateFormat(vozClienteSource.getVozClienteSetupKey("dateFormatString"));
        this.DATE_FORMAT_FILE           = new SimpleDateFormat(vozClienteSource.getVozClienteSetupKey("dateFormatFile"));
        
        this.WEEKS_BACK                 = Integer.parseInt(vozClienteSource.getVozClienteSetupKey("NumberWeeksBack"));  
        
        this.FOLDER_CARGUE_ARCHIVOS     = CoreSource.getInstance().getUtilidadesSetupKey("folderCargueArchivos");
        this.PATH_ARCHIVOS_ALERTAS      = vozClienteSource.getVozClienteSetupKey("pathArchivosAlertas");
        this.FILE_SEPARATOR             = vozClienteSource.getVozClienteSetupKey("fileSeparator");
        
        this.FILE_EXTENSION             = vozClienteSource.getVozClienteSetupKey("fileExtension");
        this.FILE_CODE                  = vozClienteSource.getVozClienteSetupKey("fileCode");
        this.FILE_ORIGEN                = vozClienteSource.getVozClienteSetupKey("fileOrigen");
        this.FILE_ACTIVE                  = vozClienteSource.getVozClienteSetupKey("fileActive");
        
    }
    
    public static ConstantesGenerales getInstance() {
        if (instance == null) {
            instance = new ConstantesGenerales();
        }
        return instance;
    }
}